<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>变量let的使用和注意</title>
</head>
<body>
  <script>
    // a = 10;
    // console.log(a);// 10
    // var a;
    
    // //使用let声明变量时，没有变量提升
    // let a = 10;
    // console.log(a); // 10
    
    // a = 10;
    // console.log(a);//报错 Uncaught ReferenceError: Cannot access 'a' before initialization
    // let a;

    // {
    //   //在大括号中声明的变量只能在大括号内部使用(说明使用 let 方式定义的变量有 块级作用域)
    //   let a = 10;
    //   console.log(a);//10
    // }
    // //出了大括号就无法使用了(说明使用 let 方式定义的变量有 块级作用域)
    // console.log(a);//报错 Uncaught ReferenceError: a is not defined

   
    // for(var i = 0; i<5; i++){
    //   console.log(i);// 0,1,2,3,4
    // }
    // console.log(i);//5

    //在循环体内使用let声明的变量，出了循环体就失效了
    // for(let i = 0; i < 5; i++){
    //   console.log(i);// 0,1,2,3,4
    // }
    // console.log(i)// 报错 Uncaught ReferenceError: i is not defined
    
    // 使用 var 定义变量，可以重复定义，不会报错
    // var a = 10;
    // var a = 'abc';

    // //使用 let 定义的变量，不能重复定义
    // let a = 10;
    // let a = 'abc'; 
    //以上代码会报错：Uncaught SyntaxError: Identifier 'a' has already been declared
  </script>
</body>
</html>